package com.itheima.day08_list集合.develophomework;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Test04 {
    /*
    马冬梅一次性购买了5本书，请定义一个List集合，存储以下书名：
    “JavaEE企业级开发指南”，”Oracle高级编程”，”Oracle从入门到精通”， ”Java架构师之路”，“Java核心思想”。
    请编程实现以下功能：
    1 使用迭代器遍历所有元素，并打印
    2 筛选书名小于10个字符的，并打印
    3 筛选书名中包含“Java”的，并打印
    4 如果书名中包含“Oracle”，则删掉此书。删掉后，打印集合中的所有书名。
     */
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("JavaEE企业级开发指南");
        list.add("Oracle高级编程");
        list.add("Oracle从入门到精通");
        list.add("Java架构师之路");
        list.add("Java核心思想");

        Iterator<String> it = list.iterator();
        while(it.hasNext()){
            String s = it.next();
            System.out.println(s);
        }
        System.out.println("------------");
        for (String s : list) {
            if(s.length() < 10){
                System.out.println(s);
            }
        }
        System.out.println("-------------");
        for (String s : list) {
             if(s.contains("Java")){
                 System.out.println(s);
             }
        }
        System.out.println("---------------");

        list.removeIf(s -> s.contains("Oracle"));
        //不能用增强for删除元素,会产生ConcurrentModificationException异常(底层源码)
        /*for (String s : list) {
            if(s.contains("Oracle")){
                list.remove(s);
            }
        }*/

        for (String s : list) {
            System.out.println(s);
        }
    }
}
